SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CLIE_I03]
/*-------------------------------------------------------*/
/*---Empresa              : OFISIS S.A.                --*/
/*---Cliente              : OFISIS S.A.                --*/
/*---Sistema              : Tesoreria                  --*/
/*---M÷dulo               : Empresa                    --*/
/*---Programa             : Grabaci÷n Letras Generadas --*/
/*                          por Canje                  --*/
/*---			    CTAS POR COBRAR            --*/ 
/*---Script               : tccanj_clie1.sql           --*/
/*---Nombre SP            : SP_TCCANJ_CLIE_I03         --*/
/*---Desarrollado por     : Eduardo Vivar              --*/
/*---Fecha Creaci÷n       : 31/01/2000                 --*/
/*---Base Datos           : Microsoft Sql Server       --*/
/*---Versi÷n              : 7.0                        --*/
/*---Invoca a SP          :                            --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Modificado 1 por     :  D.CH                          --*/
/*---Fecha Modificaci÷n   :  Agregar Comentarios        --*/ 
/*---Detalle Modificaci÷n :  15/03/2002                          --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Comentarios                                       --*/
/*---                                                  --*/
/*---                                                  --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Drop Proc SP_TCCANJ_CLIE_I03                      --*/
/*--- Grant Execute On SP_TCCANJ_CLIE_I03 to public         --*/ 
/*---SP_TCCANJ_CLIE_I03                                --*/
/*-------------------------------------------------------*/
 @ISCO_EMPR      TD_VC_002, 
 @ISCO_USUA_MODI TD_VC_008_USUA,
 @ISNO_AVAL  TD_VC_100,
 @ISNO_DIRE_AVAL TD_VC_100,
 @ISNU_RUCC_AVAL TD_VC_020,
 @ISNU_TELE_AVAL TD_VC_020,
 @ISCO_CLIE      TD_VC_020,
 @IDFE_CANJ      TD_DT_001,
 @ISCO_MONE      TD_VC_003,
 @INFA_TIPO_CAMB TD_NU_015_006,
 @ISCO_BANC      TD_VC_003,
 @ISCO_AGEN      TD_VC_003,
 @ISNU_CANJ      TD_VC_008,
 @ISCO_ESTA_DOCU TD_VC_003,
 @ISCO_TIPO_OPER TD_VC_003,
 @ISDE_LUGA_GIRO TD_VC_020,
 @ISCO_UNID_CNTB TD_VC_003,
 @ISNU_SERI	  TD_VC_003,
 @ISST_MODI	  TD_VC_001
	As
Declare 
   @CNNU_ORDE_LETR TD_IN_001,
   @CSUL_CORR_LETR TD_VC_020,
   @CDFE_VENC	    TD_DT_001,
   @CNIM_TOTA	    TD_NU_016_004,
   @CSDE_GLOS	    TD_VC_100,

   @VNNU_SECU      TD_IN_001,			
   @OSTI_DOCU      TD_VC_003,
   @VSTI_CLIE	    TD_VC_003,
   @VNNU_FETC_0001 TD_IN_001,
   @VNNU_LONG	    TD_IN_001,
   @VSUL_CORR_LETR TD_VC_020,
   @VNNU_ULTI_CORR TD_IN_001


   Exec SP_TTDOCU_CNTB_Q02 6, @OSTI_DOCU OUTPUT


   Select @VNNU_LONG = NU_LONG
   From TTDOCU_CNTB
   Where TI_DOCU = @OSTI_DOCU

   Select @VSTI_CLIE = T1.TI_CLIE
   From TMAUXI_EMPR T1, TMPARA_TESO T2
   Where T1.CO_EMPR = @ISCO_EMPR
   And T1.TI_AUXI_EMPR = T2.CO_TIAU_CLIE
   And T1.CO_AUXI_EMPR = @ISCO_CLIE
   And T1.CO_EMPR = T2.CO_EMPR


 Begin Tran SP_TCCANJ_CLIE_I03

   Declare CU_TCCANJ_CLIE_I01_1 Cursor
   For
   Select NU_ORDE_LETR, UL_CORR_LETR, FE_VENC, IM_TOTA, DE_GLOS  
   From  #TWPLAZ_CNCL

   Open  CU_TCCANJ_CLIE_I01_1
   Fetch CU_TCCANJ_CLIE_I01_1 Into
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_VENC, @CNIM_TOTA, @CSDE_GLOS

   Select @VNNU_FETC_0001 = @@FETCH_STATUS

   While (@VNNU_FETC_0001 = 0)
     Begin
       If (@VNNU_FETC_0001  < 0)
          Begin
	       RAISERROR 20001 'FIN DE ARCHIVO'
	       CLOSE CU_TCCANJ_CLIE_I01_1
	       DEALLOCATE CU_TCCANJ_CLIE_I01_1
	       RETURN
          End

	  If Rtrim(Isnull(@ISNU_SERI, '')) != ''
	    Begin
		  Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1
		  From TDCORR_FINA
		  Where CO_EMPR = @ISCO_EMPR	
		  And TI_DOCU = @OSTI_DOCU
		  And NU_SERI = @ISNU_SERI

		  Update TDCORR_FINA
		  Set NU_ULTI_CORR = @VNNU_ULTI_CORR
		  Where CO_EMPR = @ISCO_EMPR	
		  And TI_DOCU = @OSTI_DOCU
		  And NU_SERI = @ISNU_SERI

		  Select @VSUL_CORR_LETR = @ISNU_SERI + REPLICATE('0', @VNNU_LONG - 2 - Len(@ISNU_SERI) - 
							  Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +
							  Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'
	    End
	  Else
	    Begin
		  Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1
		  From TTCORR_FINA
		  Where CO_EMPR = @ISCO_EMPR	
		  And TI_DOCU = @OSTI_DOCU

		  Update TTCORR_FINA
		  Set NU_ULTI_CORR = @VNNU_ULTI_CORR
		  Where CO_EMPR = @ISCO_EMPR	
		  And TI_DOCU = @OSTI_DOCU

		  Select @VSUL_CORR_LETR = REPLICATE('0', @VNNU_LONG - 2 - Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +
							  Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'
	    End
		
	  If @VSUL_CORR_LETR != @CSUL_CORR_LETR
	    Select @ISST_MODI = 'S'

   Insert into TMLETR_CLIE (CO_EMPR, NU_LETR_CLIE, CO_CLIE, FE_EMIS, 
		FE_VENC, CO_MONE, FA_TIPO_CAMB, IM_TOTA, DE_GLOS, CO_BANC, CO_AGEN,
   		NU_CANJ, CO_ESTA_DOCU, CO_TIPO_OPER, CO_UNID_CONC, NO_AVAL, NO_DIRE_AVAL, 
                NU_RUCC_AVAL, NU_TELE_AVAL, DE_LUGA_GIRO, TI_CLIE, CO_USUA_MODI)
   Values ( @ISCO_EMPR, @VSUL_CORR_LETR, @ISCO_CLIE, @IDFE_CANJ, @CDFE_VENC,
   	    @ISCO_MONE, @INFA_TIPO_CAMB, @CNIM_TOTA, @CSDE_GLOS, @ISCO_BANC, @ISCO_AGEN, 
   	    @ISNU_CANJ, @ISCO_ESTA_DOCU, @ISCO_TIPO_OPER,  @ISCO_UNID_CNTB,  @ISNO_AVAL,
            @ISNO_DIRE_AVAL,  @ISNU_RUCC_AVAL,  @ISNU_TELE_AVAL,   @ISDE_LUGA_GIRO, 
	    @VSTI_CLIE, @ISCO_USUA_MODI )

   If @@error <> 0
      Begin
        Rollback tran
        Return
      End    

   Select @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1
   From   TDKARD_DOCU
   Where  CO_EMPR = @ISCO_EMPR

   Insert Into TDKARD_DOCU (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_ESTA_ACTU,
		            CO_ESTA_DOCU, NU_CORR_MODI )
   Values ( @ISCO_EMPR, @VNNU_SECU , @OSTI_DOCU, @VSUL_CORR_LETR, @ISCO_CLIE,
	    @ISCO_ESTA_DOCU,   @ISCO_ESTA_DOCU, @VNNU_SECU )  

   If @@error <> 0
      Begin
        Rollback tran
        Return
      End 

   Insert Into TDCANJ_CLIE (CO_EMPR, CO_UNID_CONC, CO_CLIE, NU_CANJ, FE_CANJ, NU_SECU_CANJ,
		NU_ORDE_LETR, NU_LETR_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_USUA_MODI)
   Values ( @ISCO_EMPR, @ISCO_UNID_CNTB, @ISCO_CLIE, @ISNU_CANJ, @IDFE_CANJ, @CNNU_ORDE_LETR, @CNNU_ORDE_LETR,
   	    @VSUL_CORR_LETR, NULL, NULL, @ISCO_USUA_MODI )

   If @@error <> 0
      Begin
        Rollback tran
        Return
      End    


   Fetch CU_TCCANJ_CLIE_I01_1 Into
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_VENC, @CNIM_TOTA, @CSDE_GLOS

  Select @VNNU_FETC_0001 = @@FETCH_STATUS

END

CLOSE CU_TCCANJ_CLIE_I01_1
DEALLOCATE CU_TCCANJ_CLIE_I01_1

Commit Tran

Select @ISST_MODI

/*------------------------- Fin ------------------------------*/


GO
